<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>文章列表</title>
    <link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css" />
    <link rel="stylesheet" href="css/reset.css" />
    <link rel="stylesheet" href="css/iconfont.css" />
    <link rel="stylesheet" href="css/main.css" />
    <script src="./libs/jquery-1.12.4.min.js"></script>
  </head>

  <body>
    <div class="container-fluid">
      <div class="common_title">用户信息修改</div>
      <div class="container-fluid common_con">
        <form class="form-horizontal article_form" id="form">
          <div class="form-group">
            <label for="inputEmail1" class="col-sm-2 control-label"
              >用户名称：</label
            >
            <div class="col-sm-4">
              <input
                type="text"
                name="username"
                class="form-control username"
                id="inputEmail1"
                value="李思思"
              />
            </div>
          </div>
          <div class="form-group">
            <label for="inputEmail2" class="col-sm-2 control-label"
              >昵称：</label
            >
            <div class="col-sm-4">
              <input
                type="text"
                name="nickname"
                class="form-control nickname"
                id="inputEmail2"
                value="哈哈思"
              />
            </div>
          </div>
          <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"
              >邮箱：</label
            >
            <div class="col-sm-4">
              <input
                type="text"
                name="email"
                class="form-control email"
                id="inputEmail3"
                value="520@163.com"
              />
            </div>
          </div>

          <div class="form-group">
            <label for="inputPassword3" class="col-sm-2 control-label"
              >用户图标：</label
            >
            <div class="col-sm-10">
              <img src="images/2.jpg" alt="" class="user_pic" />
              <input
                style="display: block"
                name="userPic"
                type="file"
                id="exampleInputFile"
              />
              <!-- 给label标签的for属性赋值,值是input标签的id,那这样的话点击label就相当于点击了input -->
              <br />
              <label for="exampleInputFile">
                <img
                  src="./images/uploads_icon.jpg"
                  style="height: 50px"
                  alt=""
                />
              </label>
            </div>
          </div>

          <div class="form-group">
            <label for="inputEmail4" class="col-sm-2 control-label"
              >密码：</label
            >
            <div class="col-sm-4">
              <input
                type="password"
                name="password"
                class="form-control password"
                id="inputEmail4"
                value="12345678"
              />
            </div>
          </div>
          <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
              <button type="submit" class="btn btn-success btn-edit">
                修改
              </button>
            </div>
          </div>
        </form>
      </div>
    </div>
  </body>
  <script src="./libs/https.js"></script>
  <script>
    $(function () {
      // 1. 发起ajax请求,获得用户详细信息
      $.ajax({
        type: "get",
        url: BigNew.user_detail,
        success: function (backData) {
          if (backData.code == 200) {
            // 2. 将成功返回的数据,渲染到指定结构
            // $('.username').val(backData.data.username);
            // $('.nickname').val(backData.data.nickname);
            // $('.email').val(backData.data.email);
            // $('.password').val(backData.data.password);
            // 以上四句代码有没有相同的地方
            // $('.xxx').val(backData.data.xxx)
            for (let key in backData.data) {
              // key: 对象的属性名 == 标签的类名
              // 对象的成员访问,除了用点语法,还可以用中括号+key
              $("." + key).val(backData.data[key]);
              if (key == "userPic") {
                $(".user_pic").attr("src", backData.data.userPic);
              }
            }
          }
        },
      });
      // 3. 设置图片预览功能
      $("#exampleInputFile").on("change", function () {
        // 获得图片文件数据,转成路径,设置给img标签
        let picFile = this.files[0];
        let picUrl = URL.createObjectURL(picFile);
        $(".user_pic").attr("src", picUrl);
      });

      // 4. 给修改按钮设置点击事件
      $(".btn-edit").on("click", function (e) {
        e.preventDefault();

        // 5. 利用FormData获得数据
        // 前提: 表单控件的name属性值与接口参数一致
        let fd = new FormData(document.querySelector("form"));

        // 6. 发起ajax请求
        $.ajax({
          type: "post",
          url: BigNew.user_edit,
          data: fd,
          // 原本post请求已经对参数进行编码
          // formData是另一种编码的方式
          // 以上编码只能存在一种, 必须要关闭原有的编码属性
          contentType: false,
          processData: false,
          success: function (backData) {
            if (backData.code == 200) {
              alert(backData.msg);
              // 7. 当修改成功之后,让index页面刷新
              // 问题: 当前代码在子页面user页面,如何控制父页面index做刷新
              // 前提1: 必须使用live server插件打开项目
              // 前提2: vscode的目录只打开了Bignews项目
              // parent===父页面===index
              parent.window.location.reload(); // 重新刷新index页面
            }
          },
        });
      });
    });
  </script>
</html>
